CouchDB এর RESTful API ব্যবহার করে বিভিন্ন ডেটাবেস এবং ডকুমেন্টের উপর কার্যকরী কাজ করা যায়। এই API গুলো ডেটাবেস এবং ডকুমেন্টের অবস্থা দেখতে এবং তাদের মধ্যে পরিবর্তন ট্র্যাক করতে সাহায্য করে। নিচে _all_dbs, _all_docs, এবং _changes API গুলোর বিস্তারিত আলোচনা করা হলো।
1. _all_dbs API
_all_dbs API ব্যবহার করে CouchDB সার্ভারে উপলব্ধ সকল ডেটাবেসের তালিকা পাওয়া যায়। এটি খুবই কার্যকরী যখন আপনি সার্ভারে কতগুলি ডেটাবেস আছে তা দেখতে চান।
ব্যবহার
- এন্ডপয়েন্ট:
GET /_all_dbs - ফাংশন: সমস্ত উপলব্ধ ডেটাবেসের নামের একটি তালিকা ফেরত দেয়।
উদাহরণ:
GET /_all_dbs
প্রত্যাবর্তিত ফলাফল:
[
"db1",
"db2",
"db3"
]
বৈশিষ্ট্য:
- এই API শুধুমাত্র ডেটাবেসের নাম ফিরিয়ে দেয়, ডেটাবেসের বিষয়বস্তু বা তাদের মধ্যে কোন ডেটা নেই।
- সার্ভারের মধ্যে সমস্ত ডেটাবেসের তালিকা পেতে এটি ব্যবহৃত হয়।
2. _all_docs API
_all_docs API ব্যবহার করে একটি নির্দিষ্ট ডেটাবেসের সকল ডকুমেন্টের তালিকা পাওয়া যায়। এটি একটি ডেটাবেসে সংরক্ষিত সমস্ত ডকুমেন্টের _id, _rev, এবং অন্যান্য মেটাডেটা প্রদান করে।
ব্যবহার
- এন্ডপয়েন্ট:
GET /{database}/_all_docs - ফাংশন: একটি ডেটাবেসের সব ডকুমেন্টের তালিকা ফেরত দেয়।
উদাহরণ:
GET /mydb/_all_docs
প্রত্যাবর্তিত ফলাফল:
{
"rows": [
{
"id": "doc1",
"key": "doc1",
"value": {
"rev": "1-967a00dff5e02add41819138abb7f4f8"
}
},
{
"id": "doc2",
"key": "doc2",
"value": {
"rev": "2-9c97b3c930f3548f522dcd90f93a4d28"
}
}
]
}
বৈশিষ্ট্য:
- ডকুমেন্টের metadata (যেমন
idএবংrev) প্রদান করা হয়। limitএবংskipপ্যারামিটার ব্যবহার করে আপনি রেকর্ডের পরিসীমা নির্ধারণ করতে পারেন।- আপনি
include_docs=trueপ্যারামিটার ব্যবহার করে ডকুমেন্টের পূর্ণ তথ্য (অথবা কন্টেন্ট) দেখতে পারেন।
উদাহরণ (সঙ্গে ডকুমেন্ট):
GET /mydb/_all_docs?include_docs=true
প্রত্যাবর্তিত ফলাফল:
{
"rows": [
{
"id": "doc1",
"key": "doc1",
"doc": {
"_id": "doc1",
"_rev": "1-967a00dff5e02add41819138abb7f4f8",
"name": "John",
"age": 30
}
},
{
"id": "doc2",
"key": "doc2",
"doc": {
"_id": "doc2",
"_rev": "2-9c97b3c930f3548f522dcd90f93a4d28",
"name": "Jane",
"age": 25
}
}
]
}
3. _changes API
_changes API CouchDB ডাটাবেসে সমস্ত পরিবর্তনের (insert, update, delete) একটি তালিকা প্রদান করে। এটি changes feed হিসেবে পরিচিত এবং এটি খুবই উপকারী যখন আপনি একটি ডেটাবেসের উপর ট্র্যাকিং করতে চান যে কখন এবং কী ধরনের পরিবর্তন হয়েছে।
ব্যবহার
- এন্ডপয়েন্ট:
GET /{database}/_changes - ফাংশন: ডেটাবেসে সমস্ত পরিবর্তন ট্র্যাক করে।
উদাহরণ:
GET /mydb/_changes
প্রত্যাবর্তিত ফলাফল:
{
"results": [
{
"seq": "1-g1o7h4",
"id": "doc1",
"changes": [
{
"rev": "1-967a00dff5e02add41819138abb7f4f8"
}
]
},
{
"seq": "2-g1o7h5",
"id": "doc2",
"changes": [
{
"rev": "2-9c97b3c930f3548f522dcd90f93a4d28"
}
]
}
]
}
বৈশিষ্ট্য:
seq: পরিবর্তনের সিকোয়েন্স নম্বর।id: সংশ্লিষ্ট ডকুমেন্টের ID।changes: পরিবর্তনের রিভিশন।sinceপ্যারামিটার ব্যবহার করে পূর্বের নির্দিষ্ট স্থান থেকে পরিবর্তন দেখতে পারেন।feedপ্যারামিটার (longpoll, continuous, normal) ব্যবহার করে আপনি একাধিক পরিবর্তন দেখতে পারেন।
উদাহরণ (continuous feed):
GET /mydb/_changes?feed=continuous
এই কনফিগারেশন ডেটাবেসের উপর লাইভ পরিবর্তন ট্র্যাক করতে সক্ষম।
সারাংশ
_all_dbsAPI: সমস্ত ডেটাবেসের নামের একটি তালিকা প্রদান করে।_all_docsAPI: নির্দিষ্ট ডেটাবেসের সমস্ত ডকুমেন্টের তালিকা এবং মেটাডেটা প্রদান করে।_changesAPI: ডেটাবেসের পরিবর্তনের ইতিহাস বা পরিবর্তন সিকোয়েন্স ট্র্যাক করতে সাহায্য করে।
এই API গুলো CouchDB এর সাথে ইন্টিগ্রেশন এবং ডেটাবেস পরিচালনার জন্য অত্যন্ত কার্যকরী, বিশেষত যখন আপনি ডেটাবেসের উপর নিরীক্ষণ করতে চান বা পরিবর্তন ট্র্যাক করতে চান।
Read more